package com.itxx.linkedlist.demo;

import java.util.LinkedList;

public class Demo1 {
    public static void main(String[] args) {
       /* linkedList 集合
           有序集合  有序:存取顺序
              LIst集合有索引 介意通过索引来访问元素
               与Set集合不同 List集合可以添加重复元素
                   特点:   有序   有索引  可重复      */

        /*
         * 添加元素  boolean add(E e)    void add(int index,E e)
         *
         * 删除元素  boolean remove(Object o) 根据元素内容删除元素 删除成功返回 true
         *           E remove(int index) 根据索引删除元素
         *
         * 查询元素  boolean contains​(Object o) 如果此列表包含指定的元素，则返回 true 。
         *           E get​(int index) 返回此列表中指定位置的元素。
         *
         * 修改元素  E set​(int index, E e) 用指定的元素（可选操作）替换此列表中指定位置的元素。
         *
         * 清空元素  void clear​() 从此列表中删除所有元素（可选操作）。
         * */
        LinkedList<String> list = new LinkedList<>();
//        添加元素  boolean add(E e)    void add(int index,E e)
        list.add("张三");
        list.add("李四");
        list.add("王五");
        list.add("赵六");
        list.add(0, "张小三");
//        删除元素  boolean remove(Object o) 根据元素内容删除元素 删除成功返回 true E remove(int index) 根据索引删除元素
        list.remove("张小三");
        list.remove(list.size() - 1);
//        查询元素  E get​(int index) 返回此列表中指定位置的元素。
        String s = list.get(2);
        System.out.println(s);
//        修改元素  E set​(int index, E e) 用指定的元素（可选操作）替换此列表中指定位置的元素。
        list.set(1, "隔壁老王");
        System.out.println(list);
//        清空元素  void clear​() 从此列表中删除所有元素（可选操作）。
        list.clear();
        System.out.println(list);
        /* linkedList特有方法
        addFirst() 添加头结点元素
        addLast()  添加末尾节点元素
        removeFirst() 删除头结点元素
        removeLast()  删除末尾节点元素
        getFirst() 获取头结点元素
        getLast()  获取末尾节点元素
        pop()  弹出第一个元素 并在链表集合中清除
         */


    }
}
